<?php

if (!file_exists('../config-sample.php')){
	display_header();
	echo '<p>提示！未能检测 config-sample.php 文件，请确认根目录存在此文件或重新上传。</p>';
exit;
}
$configFile = file('../config-sample.php');


if ( !is_writable('../')){
	display_header();
	echo "<p>提示！目录不可写。请更改目录属性或者手动创建config.php。</p>";
exit;
}
// Check if wp-config.php has been created
if (file_exists('../config.php')){
display_header();
	echo "<p>'config.php'文件已存在。如果您想更config.php 内已有的设定，请先删除它，本向导会重新创config.php。<a href='index.php'>重试</a>。</p>";
exit;
}
if (isset($_GET['step']))
	$step = $_GET['step'];
else
	$step = 0;

/**
 * Display setup config.php file header.
 *
 */
function display_header() {
	header( 'Content-Type: text/html; charset=utf-8' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; 安装向导</title>
<link rel="stylesheet" href="css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo"><img alt="WordPress" src="../../images/logo.png" /></h1>
<?php
}//end function display_header();

switch($step) {
	case 0:
		display_header();
?>
<p>欢迎Snock 内容管理系统！正式开始之前，我们需要一些关于数据库的信息。请确认您已经拥有以下信息：</p>
<ol>
  <li>数据库名称</li>
  <li>数据库用户名</li>
  <li>数据库密码</li>
  <li>数据库主机地址</li>
</ol>
<p><strong>如果无法进入下一步，别着急。此向导的目的在于创建 snock 的配置文件，所以您还可以直接用文本编辑器打开 <code>config-sample.php</code>，根据提示填写相应信息，然后保存并将它重命名为 <code>config.php</code>。</strong></p>
<p>正常情况下，您的空间商会告知数据库的有关信息。如果您不太清楚，请先联系您的空间提供商。如果已经准备好了 &hellip;</p>
<p class="step"><a href="index.php?step=1" class="button">那么现在开始！</a></p>
<?php
	break;

	case 1:
		display_header();
	?>
<form method="post" action="index.php?step=2">
  <p>您应该在下面的表单中填入对应的数据库信息，不确定的项目请联系您的空间提供商确认。</p>
  <table class="form-table">
    <tr>
      <th scope="row"><label for="dbname">数据库名称</label></th>
      <td><input name="dbname" id="dbname" type="text" size="25" value="snock" /></td>
      <td>用于存储 snock 数据的数据库名称。</td>
    </tr>
    <tr>
      <th scope="row"><label for="uname">数据库用户名</label></th>
      <td><input name="uname" id="uname" type="text" size="25" value="root" /></td>
      <td>您的 MySQL 用户名</td>
    </tr>
    <tr>
      <th scope="row"><label for="pwd">数据库密码</label></th>
      <td><input name="pwd" id="pwd" type="text" size="25" value="password" /></td>
      <td>...以及 MySQL 密码</td>
    </tr>
    <tr>
      <th scope="row"><label for="dbhost">数据库地址</label></th>
      <td><input name="dbhost" id="dbhost" type="text" size="25" value="localhost" /></td>
      <td>大部分主机无需修改。</td>
    </tr>
  </table>
  <p class="step">
    <input name="submit" type="submit" value="填好了" class="button" />
  </p>
</form>
<?php
	break;

	case 2:
	$dbname  = trim($_POST['dbname']);
	$uname   = trim($_POST['uname']);
	$passwrd = trim($_POST['pwd']);
	$dbhost  = trim($_POST['dbhost']);
	// Test the db connection.
	/**#@+
	 * @ignore
	 */
	define('DB_NAME', $dbname);
	define('DB_USER', $uname);
	define('DB_PASSWORD', $passwrd);
	define('DB_HOST', $dbhost);
	/**#@-*/

	// We'll fail here if the values are no good.
	@$mysqli=new mysqli($dbhost,$uname,$passwrd,$dbname);				
	
	if ( mysqli_connect_errno()){
		display_header();
		echo '<p>未能正确建立连接，请返回前一页面确认</p>';
	echo '<p class="step"><a href="index.php?step=1" class="button">返回！</a></p>';
		exit;
		}
			
	$handle = fopen('../config.php', 'w');

	foreach ($configFile as $num=>$line) {
	
		
		switch (substr($line,0,16)) {
			case "define('DB_NAME'":
				fwrite($handle, str_replace("putyourdbnamehere", $dbname, $line));
				break;
			case "define('DB_USER'":
				fwrite($handle, str_replace("'usernamehere'", "'$uname'", $line));
				break;
			case "define('DB_PASSW":
				fwrite($handle, str_replace("'yourpasswordhere'", "'$passwrd'", $line));
				break;
			case "define('DB_HOST'":
				fwrite($handle, str_replace("localhost", $dbhost, $line));
				break;
			case '$table_prefix  =':
				fwrite($handle, str_replace('wp_', $prefix, $line));
				break;
			default:
				fwrite($handle, $line);
		}
	}
	fclose($handle);
	chmod('../config.php', 0666);

	display_header();
?>
<p>恭喜！Snock和数据库的连接已经建立。准备好了？ 开始 &hellip;</p>
<p class="step"><a href="./install.php" class="button">安装！</a></p>
<?php
	break;
}
?>
</body>
</html>
